package com.fuluwa.application.pay.bo;

import com.fuluwa.application.pay.util.FiledMaxLenght;
import com.fuluwa.application.pay.util.FiledNotNull;

/**
 * 用于给财付通发送支付请求的业务Bo
 * 
 * @author leasenli
 * 
 */
public class TenpayBo extends PayBo {

	@FiledMaxLenght(lenght = 8)
	private String signType = "MD5";

	@FiledMaxLenght(lenght = 8)
	private String serviceVersion = "1.0";

	@FiledMaxLenght(lenght = 8)
	private String inputCharset = "UTF-8";

	@FiledNotNull
	@FiledMaxLenght(lenght = 32)
	private String sign;

	private int signKeyIndex = 1; // 秘钥序号

	@FiledMaxLenght(lenght = 16)
	private String bankType = "DEFAULT";

	@FiledNotNull
	@FiledMaxLenght(lenght = 32)
	private String body;

	@FiledMaxLenght(lenght = 127)
	private String attach;

	@FiledMaxLenght(lenght = 255)
	private String returnUrl;

	@FiledMaxLenght(lenght = 255)
	private String notifyUrl;

	@FiledMaxLenght(lenght = 64)
	private String buyerId;

	@FiledNotNull
	@FiledMaxLenght(lenght = 10)
	private String partner = "1900000109"; // TODO 默认为平台的spid,在配置文件中配置

	@FiledNotNull
	@FiledMaxLenght(lenght = 32)
	private String outTradeNo;

	@FiledNotNull
	private int totalFee;

	private int feeType = 1;
	private int transportFee = 1;
	private int productFee = 1;

	@FiledNotNull
	@FiledMaxLenght(lenght = 15)
	private String spbillCreateIp;

	@FiledNotNull
	@FiledMaxLenght(lenght = 145)
	private String timeStart;

	@FiledNotNull
	@FiledMaxLenght(lenght = 145)
	private String timeExpire;

	@FiledNotNull
	@FiledMaxLenght(lenght = 32)
	private String goodsTag;

	public String getSignType() {
		return signType;
	}

	public void setSignType(String signType) {
		this.signType = signType;
	}

	public String getServiceVersion() {
		return serviceVersion;
	}

	public void setServiceVersion(String serviceVersion) {
		this.serviceVersion = serviceVersion;
	}

	public String getInputCharset() {
		return inputCharset;
	}

	public void setInputCharset(String inputCharset) {
		this.inputCharset = inputCharset;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public int getSignKeyIndex() {
		return signKeyIndex;
	}

	public void setSignKeyIndex(int signKeyIndex) {
		this.signKeyIndex = signKeyIndex;
	}

	public String getBankType() {
		return bankType;
	}

	public void setBankType(String bankType) {
		this.bankType = bankType;
	}

	public String getBody() {
		return body;
	}

	public void setBody(String body) {
		this.body = body;
	}

	public String getAttach() {
		return attach;
	}

	public void setAttach(String attach) {
		this.attach = attach;
	}

	public String getReturnUrl() {
		return returnUrl;
	}

	public void setReturnUrl(String returnUrl) {
		this.returnUrl = returnUrl;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public String getBuyerId() {
		return buyerId;
	}

	public void setBuyerId(String buyerId) {
		this.buyerId = buyerId;
	}

	public String getPartner() {
		return partner;
	}

	public void setPartner(String partner) {
		this.partner = partner;
	}

	public String getOutTradeNo() {
		return outTradeNo;
	}

	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	public int getTotalFee() {
		return totalFee;
	}

	public void setTotalFee(int totalFee) {
		this.totalFee = totalFee;
	}

	public int getFeeType() {
		return feeType;
	}

	public void setFeeType(int feeType) {
		this.feeType = feeType;
	}

	public int getTransportFee() {
		return transportFee;
	}

	public void setTransportFee(int transportFee) {
		this.transportFee = transportFee;
	}

	public int getProductFee() {
		return productFee;
	}

	public void setProductFee(int productFee) {
		this.productFee = productFee;
	}

	public String getSpbillCreateIp() {
		return spbillCreateIp;
	}

	public void setSpbillCreateIp(String spbillCreateIp) {
		this.spbillCreateIp = spbillCreateIp;
	}

	public String getTimeStart() {
		return timeStart;
	}

	public void setTimeStart(String timeStart) {
		this.timeStart = timeStart;
	}

	public String getTimeExpire() {
		return timeExpire;
	}

	public void setTimeExpire(String timeExpire) {
		this.timeExpire = timeExpire;
	}

	public String getGoodsTag() {
		return goodsTag;
	}

	public void setGoodsTag(String goodsTag) {
		this.goodsTag = goodsTag;
	}

}
